#pragma once
#pragma comment(lib,"opengl32.lib")
#include <Gl/gl.h>
#include "glext.h"
#include "wglext.h"

void initOpenGL();

extern PFNGLCREATEPROGRAMPROC glCreateProgram;
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
extern PFNGLUSEPROGRAMPROC glUseProgram;
extern PFNGLATTACHSHADERPROC glAttachShader;
extern PFNGLDETACHSHADERPROC glDetachShader;
extern PFNGLLINKPROGRAMPROC glLinkProgram;
extern PFNGLGETPROGRAMIVPROC glGetProgramiv;
extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
//extern PFNGLUNIFORM1IPROC;
//extern PFNGLUNIFORM1IVPROC;
//extern PFNGLUNIFORM2IVPROC;
//extern PFNGLUNIFORM3IVPROC;
//extern PFNGLUNIFORM4IVPROC;
//extern PFNGLUNIFORM1FPROC;
//extern PFNGLUNIFORM1FVPROC;
//extern PFNGLUNIFORM2FVPROC;
//extern PFNGLUNIFORM3FVPROC;
//extern PFNGLUNIFORM4FVPROC;
//extern PFNGLUNIFORMMATRIX4FVPROC;
//extern PFNGLGETATTRIBLOCATIONPROC;
//extern PFNGLVERTEXATTRIB1FPROC;
//extern PFNGLVERTEXATTRIB1FVPROC;
//extern PFNGLVERTEXATTRIB2FVPROC;
//extern PFNGLVERTEXATTRIB3FVPROC;
//extern PFNGLVERTEXATTRIB4FVPROC;
//extern PFNGLENABLEVERTEXATTRIBARRAYPROC;
//extern PFNGLBINDATTRIBLOCATIONPROC;

// Shader
//extern PFNGLCREATESHADERPROC;
//extern PFNGLDELETESHADERPROC;
//extern PFNGLSHADERSOURCEPROC;
//extern PFNGLCOMPILESHADERPROC;
//extern PFNGLGETSHADERIVPROC;

// VBO
extern PFNGLGENBUFFERSPROC glGenBuffers;
extern PFNGLBINDBUFFERPROC glBindBuffer;
extern PFNGLBUFFERDATAPROC glBufferData;
extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;